﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using System.Net;
using System.Net.Sockets;
using System.Threading;


namespace Chat_Server_TCP
{

    class Program
    {
        private IPAddress serverIP;
        private int serverPort = 1024;
        private ChatServer mainServer;
        // Старт сервера
        // аргументы:   первый - ip адрес создаваемого сервера
        //              второй - порт сервера
        //              третий - максимальное количество подключенных пользователей        
        static void Main(string[] args)
        {
            Program prog = new Program();

            if (args.Length == 0)
            {
                prog.serverIP = IPAddress.Any;
            }
            if (args.Length == 1)
            {
                prog.serverIP = IPAddress.Parse(args[0]);
            }
            if (args.Length == 2)
            {
                prog.serverIP = IPAddress.Parse(args[0]);
                prog.serverPort = int.Parse(args[1]);
            }

            try
            {               
                prog.mainServer = new ChatServer(prog.serverIP, prog.serverPort);
                prog.mainServer.StartListening();
                Console.WriteLine("Сервер запущен!");
                Console.WriteLine("IP:PORT - {0}:{1}", prog.serverIP, prog.serverPort);
                Console.WriteLine("Введите help для вывода списка команд");

                while (true)
                {
                    Console.WriteLine();
                    Console.Write(">");
                    prog.mainServer.command_interpreter(Console.ReadLine());
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.ToString());
            }
        }
    }
}
